From 580d76a4f92e18b97f4b8b5f003f0f98a9b9a54e Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Wed, 18 Jan 2006 09:47:56 +0000 Subject: [PATCH] Implement these functions. (#327226, Thomas Broyer) 2006-01-18 Anders Carlsson * gdk/quartz/gdkdrawable-quartz.c: (gdk_quartz_draw_polygon): (gdk_quartz_draw_lines): Implement these functions. (#327226, Thomas Broyer) --- ChangeLog | 14 +++++++--- ChangeLog.pre-2-10 | 14 +++++++--- gdk/quartz/gdkdrawable-quartz.c | 48 +++++++++++++++++++++++++++++++-- 3 files changed, 68 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index deb29f3bdb..75ff2f6f86 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,17 @@ +2006-01-18 Anders Carlsson + + * gdk/quartz/gdkdrawable-quartz.c: + (gdk_quartz_draw_polygon): + (gdk_quartz_draw_lines): + Implement these functions. + (#327226, Thomas Broyer) + 2006-01-18 Anders Carlsson * gdk/quartz/gdkkeys-quartz.c: - (maybe_update_keymap): - Support non-MacRoman keyboard layouts. - (#322585, Wolfgang Thaller) + (maybe_update_keymap): + Support non-MacRoman keyboard layouts. + (#322585, Wolfgang Thaller) 2006-01-18 Anders Carlsson diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index deb29f3bdb..75ff2f6f86 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,9 +1,17 @@ +2006-01-18 Anders Carlsson + + * gdk/quartz/gdkdrawable-quartz.c: + (gdk_quartz_draw_polygon): + (gdk_quartz_draw_lines): + Implement these functions. + (#327226, Thomas Broyer) + 2006-01-18 Anders Carlsson * gdk/quartz/gdkkeys-quartz.c: - (maybe_update_keymap): - Support non-MacRoman keyboard layouts. - (#322585, Wolfgang Thaller) + (maybe_update_keymap): + Support non-MacRoman keyboard layouts. + (#322585, Wolfgang Thaller) 2006-01-18 Anders Carlsson diff --git a/gdk/quartz/gdkdrawable-quartz.c b/gdk/quartz/gdkdrawable-quartz.c index d3adb8d2d7..a6aeee9059 100644 --- a/gdk/quartz/gdkdrawable-quartz.c +++ b/gdk/quartz/gdkdrawable-quartz.c @@ -209,7 +209,33 @@ gdk_quartz_draw_polygon (GdkDrawable *drawable, GdkPoint *points, gint npoints) { - /* FIXME: Implement */ + CGContextRef context = _gdk_quartz_drawable_get_context (drawable, FALSE, TRUE); + int i; + + if (!context) + return; + + _gdk_quartz_update_context_from_gc (context, gc); + + if (filled) + _gdk_quartz_set_context_fill_color_from_pixel (context, gdk_drawable_get_colormap (drawable), + _gdk_gc_get_fg_pixel (gc)); + else + _gdk_quartz_set_context_stroke_color_from_pixel (context, gdk_drawable_get_colormap (drawable), + _gdk_gc_get_fg_pixel (gc)); + + CGContextMoveToPoint (context, points[0].x, points[0].y); + for (i = 1; i < npoints; i++) + CGContextAddLineToPoint (context, points[i].x, points[i].y); + + CGContextClosePath (context); + + if (filled) + CGContextFillPath (context); + else + CGContextStrokePath (context); + + _gdk_quartz_drawable_release_context (drawable, context); } static void @@ -338,7 +364,25 @@ gdk_quartz_draw_lines (GdkDrawable *drawable, GdkPoint *points, gint npoints) { - /* FIXME: Implement */ + CGContextRef context = _gdk_quartz_drawable_get_context (drawable, FALSE, TRUE); + int i; + + if (!context) + return; + + _gdk_quartz_update_context_from_gc (context, gc); + _gdk_quartz_set_context_stroke_color_from_pixel (context, gdk_drawable_get_colormap (drawable), + _gdk_gc_get_fg_pixel (gc)); + + for (i = 1; i < npoints; i++) + { + CGContextMoveToPoint (context, points[i - 1].x, points[i - 1].y); + CGContextAddLineToPoint (context, points[i].x, points[i].y); + } + + CGContextStrokePath (context); + + _gdk_quartz_drawable_release_context (drawable, context); } static void -- 2.30.2